#通用装饰器：可以装饰任意类型的函数

#装饰带有参数的函数

#定义装饰器
# def func(fun):
#     def inner(a,b):
#         print("执行加法函数")
#         fun(a,b)
#     return inner

# #装饰器语法糖
# @func #add_sum = func(add_sum) add_sum = inner
# def add_sum(num1,num2):
#     print(num1+num2)
# add_sum(1,2)

#装饰带有返回值的函数
# def func(fun):
#     def inner(a,b):
#         print("执行加法函数")
#         result = fun(a,b)
#         return result
#     return inner

# #装饰器语法糖
# @func #add_sum = func(add_sum) add_sum = inner
# def add_sum(num1,num2):
#     return num1+num2
# result = add_sum(1,2)
# print("结果为",result)

#装饰带有不定长参数和返回值的函数
def func(fun):
    def inner(a,b):
        print("执行加法函数")
        result = fun(a,b)
        return result
    return inner

#装饰器语法糖
@func #add_sum = func(add_sum) add_sum = inner
def add_sum(num1,num2):
    return num1+num2
result = add_sum(1,2)
print("结果为",result)